﻿using System.Collections.Generic;
using Blame.Entity;

namespace Blame.Decorator
{
    public interface DVCSDecorator
    {
        void ConnectToRepo(string fullPath);
        IEnumerable<User> GetUsers();
        List<Changeset> GetUserLog(User user);
        ChurnInfo GetUserContributionByLines(User user, out int totalAddRemoveCount, out int totalAddCount, out int totalRemoveCount);
        ChurnInfo GetUserContributionByChangesets(User user, out int totalAddRemoveCount, out int totalAddCount, out int totalRemoveCount);
        Dictionary<User, ChurnInfo> GetChurnStatisticsByLines(out int totalAddRemoveCount, out int totalAddCount, out int totalRemoveCount);
        Dictionary<User, ChurnInfo> GetChurnStatisticsByChangesets(out int totalAddRemoveCount, out int totalAddCount, out int totalRemoveCount);
        string GenerateDiff(int revisionNumber);
    }
}

